package io.adrainty.bolee.security.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.adrainty.bolee.framework.commons.basic.TreeDTO;
import io.adrainty.bolee.security.models.entity.DeptEntity;

import java.util.List;

/**
 * <p>IDeptService</p>
 *
 * @author AdRainty
 * @version V1.0.0
 * @description IDeptService
 * @since 2025/8/7 13:49:35
 */
public interface IDeptService {

    /**
     * 创建部门
     *
     * @param deptEntity 部门信息
     * @return 部门信息
     */
    DeptEntity createDept(DeptEntity deptEntity);

    /**
     * 获取部门列表
     *
     * @param entity 部门信息
     * @return 部门列表
     */
    List<DeptEntity> findDeptList(DeptEntity entity);

    /**
     * 获取部门树
     *
     * @param entity 部门信息
     * @return 部门树
     */
    TreeDTO findDeptTree(DeptEntity entity);

    /**
     * 分页获取部门列表
     *
     * @param pageNum      页码
     * @param pageSize     页大小
     * @param deptEntity 部门信息
     * @return 部门列表
     */
    IPage<DeptEntity> pageDept(Integer pageNum, Integer pageSize, DeptEntity deptEntity);

    /**
     * 创建部门
     *
     * @param entity 部门信息
     * @return 部门信息
     */
    Boolean updateDept(DeptEntity entity);
}
